#ifndef GRUPOELEMENTOS_H
#define GRUPOELEMENTOS_H

#include "elementoimpresion.h"

/**
 * Elemento de impresion que representa un grupo de elementos que se imprimen a la vez.
 */
class GrupoElementos : public ElementoImpresion
{
public:
    GrupoElementos();
    ~GrupoElementos();

    void imprimir(EstadoImpresion& estado, QRect rect);
    QSize obtenerDimensiones(EstadoImpresion& estado);
    int obtenerDescenso(EstadoImpresion& estado);

    void agregar(ElementoImpresion* elemento);
    void agregar(const QList<ElementoImpresion*>& elementos);

    void destruirElementosAutodestruibles();

private:
    QList<ElementoImpresion*> listaElementos;
};

#endif // GRUPOELEMENTOS_H
